package TreeMap;

import java.util.*;

public class demo3 {
    public static void main(String[] args) {
        String str = "aababcabcdabcde";

        //利用map集合来添加字符出现的次数
        /*
        新的统计思想,如果题目没有要求对结果排序默认使用HaShMap
        如果有排序就使用TreeMap 因为 a(5) b(4) c(3) d(2) e(1)按照Ascll码值排好了
         */
        TreeMap<Character, Integer> tm = new TreeMap<>();
        for (int i = 0; i < str.length(); i++) {
            char s = str.charAt(i);//得到每一个键(字符)
            //判断tm集合里面是否存在字符
            if (tm.containsKey(s)) {
                //存在count++;
                int count = 0;
                //先获取当前字符已经出现了多少次数
                count = tm.get(s);
                //当前字符又出现一次
                count++;
                tm.put(s, count);
            } else {
                //不存在count为1
                tm.put(s, 1);
            }
        }

/*
        Set<Map.Entry<Character, Integer>> entries = tm.entrySet();
        for (Map.Entry<Character, Integer> entry : entries) {
            char key = entry.getKey();
            int value = entry.getValue();
            System.out.print(key + "(" + value + ")" + " ");
        }*/
        //把所有键存入一个集合里面
        Set<Character> keys = tm.keySet();
        for (Character key : keys) {
            //遍历集合,得到每一个键
            //通过键得到每一个值
            int value = tm.get(key);
            System.out.print(key + "(" + value + ")" + " ");

        }
    }
}
